﻿using System;
using System.Collections.Generic;
using TestBat.IModels.Domain;

namespace TestBat.IModels.Models
{
    public interface ITestModel : IModel
    {
        ITest GetByID(Guid ID);

        void Save(ITest test);

        void Delete(ITest test);

        ITest Create(ISchedule schedule, ITrainee trainee);

        void SaveEssaySolution(Guid testTaskID, string solution);
        void SaveMultipleChoiceSolution(Guid testTaskID, Guid choiceID);
        void SaveMultipleResponseSolution(Guid testTaskID, Guid[] choiceIDs);

        void Finish(ITest test);

        bool IsFinished(ITest test);

        IList<ITest> GetGradedForTrainee(ITrainee trainee);
    }
}
